package com.atguigu.exam;

import java.io.*;

/**
 * 1)	利用java代码在D盘下创建一个mytemp文件夹
 * 2)	显示D盘下所有的.Java文件，包括D盘的子文件夹下的.java文件
 * 3)	把上述显示的文件都复制到mytemp文件夹中
 * @author xbd
 * @create 2021-05-30 21:38
 */
public class CopyJavaTest {
    public static void main(String[] args) {
        //利用java代码在D盘下创建一个mytemp文件夹
        File file = new File("D:\\mytemp");
        if(!file.exists()){
            file.mkdirs();
        }
        //显示D盘下所有的.Java文件，包括D盘的子文件夹下的.java文件
        File file1 = new File("E:\\");
        seek(file1);
    }
    //显示D盘下所有的.Java文件，包括D盘的子文件夹下的.java文件的seek()方法
    public static void seek(File f){
        File[] files = f.listFiles();
        if(files != null){
            for(File file : files){
                if(file.getName().endsWith(".java")){
                    //把上述显示的文件都复制到mytemp文件夹中
                    System.out.println(file);
                    BufferedInputStream bis = null;
                    BufferedOutputStream bos = null;
                    try {
                        bis = new BufferedInputStream(new FileInputStream(file));
                        bos = new BufferedOutputStream(new FileOutputStream("D:\\mytemp\\" + file.getName()));
                        byte[] bytes = new byte[1024];
                        int len;
                        while ((len = bis.read(bytes)) != -1){
                            bos.write(bytes,0,len);
                        }
                    } catch (IOException e) {
                        e.printStackTrace();
                    } finally {
                        if(bis != null){
                            try {
                                bis.close();
                            } catch (IOException e) {
                                e.printStackTrace();
                            }
                        }
                        if(bos != null){
                            try {
                                bos.close();
                            } catch (IOException e) {
                                e.printStackTrace();
                            }
                        }
                    }

                }
                seek(file);
            }
        }
    }
}
